<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let声明关键字</title>
</head>
<body>
<script>
    // 绑定区域与暂时性死区
    var tmp=123
    if(true){
        // 暂时性死区，如果使用过tmp会报错
        // console.error(tmp)
        let tmp="123"// 只要存在let关键字，这个声明的变量就被绑定在最近的块级作用域内
        // 并在声明之前形成一块暂时性死区
        console.log(tmp)
    }

    //在绑定的作用域内，不得重复声明相同的变量【但是作用于外可以】
    {
        var es6="es6"
        //let es6="es6"
        let tmp="999"//作用域外可以，外部声明var tmp
    }

    //块级作用域
    {
        var a="你好"
        let b="hello"
    }
    console.log(a)
    //console.error(b) b is not defined

</script>
</body>
</html>